package top.cardone.data.service;

import java.util.List;
import java.util.Map;

/**
 * 简易 service
 *
 * @author yaohaitao
 */
public interface CrudService {
    /**
     * 删除
     *
     * @param delete
     * @return 影响行数
     */
    int delete(Object delete);

    /**
     * 删除
     *
     * @return 影响行数
     */
    int deleteAll();

    /**
     * 删除
     *
     * @param ids 等于那些属性
     * @return 影响行数
     */
    int deleteByIds(Object ids);

    /**
     * 删除
     *
     * @param deleteList
     * @return 影响行数
     */
    int[] deleteList(List<Object> deleteList);

    /**
     * 查询
     *
     * @param findList 等于那些属性
     * @return 对象集合
     */
    List<Map<String, Object>> findList(Object findList);

    /**
     * 查询
     *
     * @param findOne 等于那些属性
     * @return 返回对象
     */
    Map<String, Object> findOne(Object findOne);

    /**
     * 插入
     *
     * @param insert 对象
     * @return 影响行数
     */
    int insert(Object insert);

    /**
     * 插入
     *
     * @param insert 对象
     * @return 影响行数
     */
    int insertByNotExists(Object insert);

    /**
     * 插入
     *
     * @param insertList 对象
     * @return 影响行数
     */
    int[] insertList(List<Object> insertList);

    /**
     * 插入
     *
     * @param insertList 对象
     * @return 影响行数
     */
    int[] insertListByNotExists(List<Object> insertList);

    /**
     * 查询
     *
     * @param readList
     * @return 返回数据
     */
    List<Object> readList(Object readList);

    /**
     * 查询
     *
     * @param readOne
     * @return 返回数据
     */
    Object readOne(Object readOne);

    /**
     * 保存
     *
     * @param save 保存对象
     * @return 插入后数据库值
     */
    Integer save(Object save);

    /**
     * 更新
     *
     * @param update 对象
     * @return 影响行数
     */
    int update(Object update);

    /**
     * 更新
     *
     * @param updateList 对象
     * @return 影响行数
     */
    int[] updateList(List<Object> updateList);
}
